#ifndef SEQLIST_H
#define SEQLIST_H
#include <stdio.h>
#include <stdlib.h>

typedef int Element;

// 定义顺序表的表头结构
typedef struct {
    Element *data;				// 指向顺序表的数据区域
    int capacity;				// 该区域的最大容量，超过这个容量就需要扩容
    int len;					// 该区域能够访问的边界条件，目前的容器内存储数据的数量
}SeqList;

/* 维护表头结构接口，申请表头和表的数据区域，以及释放表[表头和数据区域] */
SeqList *createSeqList(int n);
void releaseSeqList(SeqList *seq);

/* 维护表数据操作接口 */
// 1. 尾插法（效率最高）
int pushBackSeq(SeqList *seq, Element val);
// 2. 显示表内数据
void showSeqList(SeqList *seq);
// 3. 任意位置插入[不推荐使用的接口]
int insertSeq(SeqList *seq, int pos, Element val);
// 4. 删除（效率最高尾）
// 4. 删除指定值
int deleteSeq(SeqList *seq, Element val);
// 5. 查找
int findSeq(SeqList *seq, Element val);
#endif //SEQLIST_H
